<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //1.利用父构造函数继承属性
        //1.父构造函数
        function Father(uname, age) {
            //this 指向父构造函数的对象实例
            this.uname = uname;
            this.age = age;
        }

        //2.子构造函数
        function Son(uname, age) {
            //this指向子构造函数的对象实例
            var that = this;  //
            //相当于做了这样的操作：子构造函数中的this=父类构造函数中的this.
            //在这里为了区别两个this,可以把孩子中的this先赋值给that,然后把下面的
            //原先使指向父亲this,改成that,所以that也就指向father,儿子就可以拥有父亲中的成员了

            Father.call(that, uname, age);  //把父类构造函数中的this改成子函数中的this
        }
        var son = new Son('刘德华', 18);
        console.log(son);

    </script>
</body>

</html>